package xcmg.device.service.vo.sale;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import xcmg.device.service.vo.basic.MaterialLocationRelationVO;
import xcmg.device.service.vo.marketing.MarketingActivityPriceVO;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class SaleIntentionDetailVO {
    private String id;
    private String saleNo;

    private String saleIntentionId;

    private String materialsNo;

    private String materialsDes;

    //零件英文描述
    private String materialsDesEn;

    private String sortId;

    private String sortName;

    private String unit;

    private BigDecimal price;

    private BigDecimal applyTotalPrice;

    private String priceSchemeId;

    private String priceSchemeName;

    private BigDecimal amountAfterAdjust;

    private BigDecimal unitPriceAfterAdjust;

    private BigDecimal totalPriceAfterAdjust;

    private BigDecimal qty;

    private BigDecimal informedAmount;

    private BigDecimal inventoryOutAmount;

    private Date requestDeliveryDate;

    private BigDecimal handselAmount;

    private String remark;
    private Integer errorRow;

    private String inventoryOutStatus;

    private BigDecimal enableNum = BigDecimal.ZERO;

    private BigDecimal intentionNum = BigDecimal.ZERO;

    private BigDecimal deliveryNum = BigDecimal.ZERO;

    private String stockLocation;

    private BigDecimal returnApplyAmount;

    private BigDecimal settlementPrice;

    private String deleteReason;//删除原因

    //购买量
    private Integer isMinimumBuy;
    private Integer minimumBuy;

    private Integer isRaise;

    private String deliveryCreateId;

    private String deliveryCreateName;

    private Date deliveryCreateDate;

    private Date deliveryDate;

    /**
     * 是否为替换零件
     */
    private String isReplaceMaterial;

    /** 填写缺货备注的用户id*/
    private String lackCreateId;

    /** 缺货备注*/
    private String lackRemark;

    private Integer rownum;

    /**
     * 标准价格
     */
    private BigDecimal standardPrice;
    //给塔机对接使用到的字段，用来给price(全国统一价)和UNIT_PRICE_AFTER_ADJUST(调整后单价赋值)
    private BigDecimal unitPrice;


    private String machineModel;

    /**
     * 原零件编码
     */
    private String originalMaterialsNo;
    /**单据价格方案信息*/
    private MarketingActivityPriceVO marketingActivityPrice;
    //行号:pms定义的零件行号，用于带到后面的发货通知单，发运交接单
    private Integer lineNo;

    public String getIsReplaceMaterial() {
        return isReplaceMaterial;
    }

    public void setIsReplaceMaterial(String isReplaceMaterial) {
        this.isReplaceMaterial = isReplaceMaterial;
    }

    public String getOriginalMaterialsNo() {
        return originalMaterialsNo;
    }

    public void setOriginalMaterialsNo(String originalMaterialsNo) {
        this.originalMaterialsNo = originalMaterialsNo;
    }

    /** 替换零件编码 */
    private String replaceMaterialsNo;

    /** 替换零件名称 */
    private String replaceMaterialsDes;

    public BigDecimal getUnitPrice(){
        return unitPrice;
    }

    public void setUnitPrice(){
        this.unitPrice = unitPrice;
    }

    public BigDecimal getStandardPrice() {
        return standardPrice;
    }

    public void setStandardPrice(BigDecimal standardPrice) {
        this.standardPrice = standardPrice;
    }

    public Integer getRownum() {
        return rownum;
    }

    public void setRownum(Integer rownum) {
        this.rownum = rownum;
    }

    private List<MarketingActivityPriceVO> marketingActivityPriceVOList=new ArrayList<MarketingActivityPriceVO>();

    public List<MarketingActivityPriceVO> getMarketingActivityPriceVOList() {
        return marketingActivityPriceVOList;
    }


    public void setMarketingActivityPriceVOList(List<MarketingActivityPriceVO> marketingActivityPriceVOList) {
        this.marketingActivityPriceVOList = marketingActivityPriceVOList;
    }

    public String getDeleteReason() {
        return deleteReason;
    }

    public void setDeleteReason(String deleteReason) {
        this.deleteReason = deleteReason;
    }

    public Integer getIsMinimumBuy() {
        return isMinimumBuy;
    }

    public void setIsMinimumBuy(Integer isMinimumBuy) {
        this.isMinimumBuy = isMinimumBuy;
    }

    public Integer getMinimumBuy() {
        return minimumBuy;
    }

    public void setMinimumBuy(Integer minimumBuy) {
        this.minimumBuy = minimumBuy;
    }

    public BigDecimal getReturnApplyAmount()
    {
        return returnApplyAmount;
    }

    public void setReturnApplyAmount(BigDecimal returnApplyAmount)
    {
        this.returnApplyAmount = returnApplyAmount;
    }

    private List<MaterialLocationRelationVO> stockLocationList;

    public String getStockLocation()
    {
        return stockLocation;
    }

    public void setStockLocation(String stockLocation)
    {
        this.stockLocation = stockLocation;
    }

    public Integer getErrorRow() {
        return errorRow;
    }

    public void setErrorRow(Integer errorRow) {
        this.errorRow = errorRow;
    }

    public String getSaleNo() {
        return saleNo;
    }

    public void setSaleNo(String saleNo) {
        this.saleNo = saleNo;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id == null ? null : id.trim();
    }

    public String getSaleIntentionId() {
        return saleIntentionId;
    }

    public void setSaleIntentionId(String saleIntentionId) {
        this.saleIntentionId = saleIntentionId == null ? null : saleIntentionId.trim();
    }

    public String getMaterialsNo() {
        return materialsNo;
    }

    public void setMaterialsNo(String materialsNo) {
        this.materialsNo = materialsNo == null ? null : materialsNo.trim();
    }

    public String getMaterialsDes() {
        return materialsDes;
    }

    public void setMaterialsDes(String materialsDes) {
        this.materialsDes = materialsDes;
    }

    public String getSortId() {
        return sortId;
    }

    public void setSortId(String sortId) {
        this.sortId = sortId == null ? null : sortId.trim();
    }

    public String getSortName() {
        return sortName;
    }

    public void setSortName(String sortName) {
        this.sortName = sortName == null ? null : sortName.trim();
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getPriceSchemeId() {
        return priceSchemeId;
    }

    public void setPriceSchemeId(String priceSchemeId) {
        this.priceSchemeId = priceSchemeId == null ? null : priceSchemeId.trim();
    }

    public String getPriceSchemeName() {
        return priceSchemeName;
    }

    public void setPriceSchemeName(String priceSchemeName) {
        this.priceSchemeName = priceSchemeName == null ? null : priceSchemeName.trim();
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getApplyTotalPrice() {
        return applyTotalPrice;
    }

    public void setApplyTotalPrice(BigDecimal applyTotalPrice) {
        this.applyTotalPrice = applyTotalPrice;
    }

    public BigDecimal getAmountAfterAdjust() {
        return amountAfterAdjust;
    }

    public void setAmountAfterAdjust(BigDecimal amountAfterAdjust) {
        this.amountAfterAdjust = amountAfterAdjust;
    }

    public BigDecimal getUnitPriceAfterAdjust() {
        return unitPriceAfterAdjust;
    }

    public void setUnitPriceAfterAdjust(BigDecimal unitPriceAfterAdjust) {
        this.unitPriceAfterAdjust = unitPriceAfterAdjust;
    }

    public BigDecimal getTotalPriceAfterAdjust() {
        return totalPriceAfterAdjust;
    }

    public void setTotalPriceAfterAdjust(BigDecimal totalPriceAfterAdjust) {
        this.totalPriceAfterAdjust = totalPriceAfterAdjust;
    }

    public BigDecimal getQty() {
        return qty;
    }

    public void setQty(BigDecimal qty) {
        this.qty = qty;
    }

    public BigDecimal getInformedAmount() {
        return informedAmount;
    }

    public void setInformedAmount(BigDecimal informedAmount) {
        this.informedAmount = informedAmount;
    }

    public BigDecimal getInventoryOutAmount() {
        return inventoryOutAmount;
    }

    public void setInventoryOutAmount(BigDecimal inventoryOutAmount) {
        this.inventoryOutAmount = inventoryOutAmount;
    }

    public BigDecimal getHandselAmount() {
        return handselAmount;
    }

    public void setHandselAmount(BigDecimal handselAmount) {
        this.handselAmount = handselAmount;
    }

    public Date getRequestDeliveryDate() {
        return requestDeliveryDate;
    }

    public void setRequestDeliveryDate(Date requestDeliveryDate) {
        this.requestDeliveryDate = requestDeliveryDate;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    public String getInventoryOutStatus() {
        return inventoryOutStatus;
    }

    public void setInventoryOutStatus(String inventoryOutStatus) {
        this.inventoryOutStatus = inventoryOutStatus;
    }

    public BigDecimal getEnableNum() {
        return enableNum;
    }

    public void setEnableNum(BigDecimal enableNum) {
        this.enableNum = enableNum;
    }

    public BigDecimal getIntentionNum() {
        return intentionNum;
    }

    public void setIntentionNum(BigDecimal intentionNum) {
        this.intentionNum = intentionNum;
    }

    public BigDecimal getDeliveryNum() {
        return deliveryNum;
    }

    public void setDeliveryNum(BigDecimal deliveryNum) {
        this.deliveryNum = deliveryNum;
    }

    public List<MaterialLocationRelationVO> getStockLocationList() {
        return stockLocationList;
    }

    public void setStockLocationList(List<MaterialLocationRelationVO> stockLocationList) {
        this.stockLocationList = stockLocationList;
    }

    public BigDecimal getSettlementPrice() {
        return settlementPrice;
    }

    public void setSettlementPrice(BigDecimal settlementPrice) {
        this.settlementPrice = settlementPrice;
    }

    public Integer getIsRaise() {
        return isRaise;
    }

    public void setIsRaise(Integer isRaise) {
        this.isRaise = isRaise;
    }

    public String getDeliveryCreateId() {
        return deliveryCreateId;
    }

    public void setDeliveryCreateId(String deliveryCreateId) {
        this.deliveryCreateId = deliveryCreateId;
    }

    public String getDeliveryCreateName() {
        return deliveryCreateName;
    }

    public void setDeliveryCreateName(String deliveryCreateName) {
        this.deliveryCreateName = deliveryCreateName;
    }

    public Date getDeliveryCreateDate() {
        return deliveryCreateDate;
    }

    public void setDeliveryCreateDate(Date deliveryCreateDate) {
        this.deliveryCreateDate = deliveryCreateDate;
    }

    public Date getDeliveryDate() {
        return deliveryDate;
    }

    public void setDeliveryDate(Date deliveryDate) {
        this.deliveryDate = deliveryDate;
    }

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
    }

    public String getLackCreateId() {
        return lackCreateId;
    }

    public void setLackCreateId(String lackCreateId) {
        this.lackCreateId = lackCreateId;
    }

    public String getLackRemark() {
        return lackRemark;
    }

    public void setLackRemark(String lackRemark) {
        this.lackRemark = lackRemark;
    }

    public String getMachineModel() {
        return machineModel;
    }

    public void setMachineModel(String machineModel) {
        this.machineModel = machineModel;
    }

    public String getMaterialsDesEn() {
        return materialsDesEn;
    }

    public void setMaterialsDesEn(String materialsDesEn) {
        this.materialsDesEn = materialsDesEn;
    }

    public String getReplaceMaterialsNo() {
        return replaceMaterialsNo;
    }

    public void setReplaceMaterialsNo(String replaceMaterialsNo) {
        this.replaceMaterialsNo = replaceMaterialsNo;
    }

    public String getReplaceMaterialsDes() {
        return replaceMaterialsDes;
    }

    public void setReplaceMaterialsDes(String replaceMaterialsDes) {
        this.replaceMaterialsDes = replaceMaterialsDes;
    }

    public MarketingActivityPriceVO getMarketingActivityPrice() {
        return marketingActivityPrice;
    }

    public void setMarketingActivityPrice(MarketingActivityPriceVO marketingActivityPrice) {
        this.marketingActivityPrice = marketingActivityPrice;
    }

    public Integer getLineNo() {
        return lineNo;
    }

    public void setLineNo(Integer lineNo) {
        this.lineNo = lineNo;
    }
}
